Intenté ejecutar el comando gulp en mi terminal en el directorio del proyecto donde tengo gulpfile.js pero aparece el error, The following tasks did not complete: default, gulpSass; Did you forget to signal async completion que intenté buscar una solución pero fue en vano?
Revisé algunas posibles razones por las que estoy enfrentando el problema e implementé algunas, pero aún seguía recibiendo el error.
Una de las posibles soluciones que probé fue usar async await en todas las funciones, pero no resolvió el problema.
Este es mi gulpfile.js
var gulp = require('gulp'), sass = require('gulp-sass'), plumber = require('gulp-plumber'), notify = require('gulp-notify'), livereload = require('gulp-livereload') concat = require('gulp-concat'), uglify = require('gulp-uglify'), // Concat all js into one script async function js ( cb ) { return await gulp.src(['./assets/js/lib/*.js','./assets/js/scripts/**/*.js']) .pipe(plumber(plumberErrorHandler)) //.pipe(jshint()) //.pipe(jshint.reporter('jshint-stylish')) .pipe(sourcemaps.init()) .pipe(concat('scripts.min.js')) .pipe(uglify()) .pipe(sourcemaps.write('../maps/')) .pipe(gulp.dest('./assets/js')) .pipe(livereload()); cb(); } // Sass compiler + Maps async function sass ( cb ) { return await gulp.src('./assets/scss/*.scss') .pipe(plumber(plumberErrorHandler)) .pipe(sassGlob()) .pipe(sourcemaps.init()) .pipe(sass({outputStyle: 'development'})) //.pipe(autoprefixer({ // browsers: ['>1%'], //remove: false //})) .pipe(sourcemaps.write('./assets/maps')) .pipe(gulp.dest('.')) .pipe(livereload()); cb(); } // Watch for changes async function watch ( cb ) { livereload.listen(); return await gulp.watch('./assets/scss/**/*', ['sass']); return await gulp.watch('./assets/js/lib/**/*.js', ['js']); return await gulp.watch('./assets/js/scripts/**/*.js', ['js']); return await gulp.watch('./**/*.php').on('change', async function(file) { livereload.changed(file.path); }); cb(); } // Error handling/reporting var plumberErrorHandler = { errorHandler: notify.onError({ title: 'Gulp', message: 'Error: <%= error.message %>' }) } // Default exports.default = gulp.series(js, sass, watch);Primero, su mensaje de error dice The following tasks did not complete: default, gulpSass; pero no hay una tarea gulpSass en su código, así que cambió algo antes de copiarlo aquí.
En segundo lugar, esta sintaxis es antigua:
return await gulp.watch('./assets/scss/**/*', ['sass']);
Usa esto en su lugar:
gulp.watch('./assets/scss/**/*', sass);
Está utilizando la forma de nombre de función de las tareas, no la gulp.task('sass') , por lo que en las llamadas de vigilancia utiliza el nombre de función sass pero no como una cadena 'sass' .
Realice este cambio a lo largo de su tarea watch .
Y me desharía de la return await , probablemente sea un problema.